package cccourier.Cliente.model;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.NoResultException;
import javax.persistence.Persistence;
import javax.persistence.Query;


import org.apache.commons.beanutils.BeanUtils;


public class UsuarioJPA {

	private static UsuarioJPA usuarioJPA;
	
	public static UsuarioJPA getInstance() {
		if(usuarioJPA==null)
			usuarioJPA=new UsuarioJPA();
		return usuarioJPA;
		
	}
	
	String usuario;
	String pass;
	public Usuario copiarPropiedades(Usuario usuario) throws Exception{
		Usuario entidad= new Usuario();

		BeanUtils.copyProperties(entidad, usuario);
		return entidad;
		
	}
	
	EntityManagerFactory fabrica = Persistence
	.createEntityManagerFactory("AppJPA");

	

	public Usuario validarUsuario(Usuario usuario) 
	throws Exception{
			Usuario entidad;
			EntityManager em=fabrica.createEntityManager();
			
			try{
				em.getTransaction().begin();
				
				String query="SELECT Usuario,Password,TipoUs FROM usuario  WHERE " +
					       "Usuario='"+usuario+"' AND Password='"+pass+"'";				
				Query emquery=em.createQuery(query);

				emquery.setParameter("user", usuario.getUsuario());
				emquery.setParameter("pass", usuario.getPassword());
				try {
					Object o = (Object)emquery.getSingleResult();
					if (o != null) {
						entidad = (Usuario) o;
						BeanUtils.copyProperties(usuario, entidad);
			                 usuario.getTbusuario().setUsuario(entidad.getTbusuario().getUsuario());
			                 
					}
					em.getTransaction().commit();
				
				} catch (NoResultException e) {usuario=null;}
				} finally {em.close();}
			return usuario;
		}
	
	

}
